package model

import (
	"time"
)

type SkillEvaluate struct {
	Score   float64 `json:"score"`
	Comment string  `joon:"comment"`
}

type SkillEvaluateResult struct {
	Debate        SkillEvaluate
	Study         SkillEvaluate
	Initiative    SkillEvaluate
	Communication SkillEvaluate
	AntiStress    SkillEvaluate
	Logic         SkillEvaluate
}

type Lv struct {
	Label string `json:"label"`
	Value string `json:"value"`
}

type Cd struct {
	Title string    `json:"title"`
	Text  string    `json:"text"`
	Id    string    `json:"id"`
	Data  []float64 `json:"data"`
}

type Ac struct {
	Title           string `json:"title"`
	Label           string `json:"label"`
	Score           int    `json:"score"`
	LowPerformance  string `json:"lowPerformance"`
	HighPerformance string `json:"highPerformance"`
}

type Da struct {
	Title   string   `json:"title"`
	Content []string `json:"content"`
}

type ScoreFocusTopic struct {
	AnsText  string `json:"ans_text"`
	QuesText string `json:"ques_text"`
}

// 评分调用算法请求参数
type ScoreReq struct {
	AnsText string   `json:"ans_text"`
	KwList  []string `json:"kw_list"`
}

// 评分返回
type ScoreResp struct {
	Score float64 `json:"score"`
}

// 接口get_modal_word_count
type MoodResp struct {
	Percent float64 `json:"percent"`
	Total   int     `json:"total"`
	Count   int     `json:"count"`
}

type CharacterInfo struct {
	Title string  `json:"title"`
	Score float64 `json:"score"`
}

// 接口get_character_score
type CharacterResp struct {
	Text        string          `json:"text"`
	Personality []CharacterInfo `json:"personality"`
}

// 接口mask+data
type MaskDataResp struct {
	MaskedText      string   `json:"masked_text"`
	MaskedIdxList   []int    `json:"masked_idx_list"`
	MaskedTokenList []string `json:"masked_token_list"`
}

type Sort struct {
	Id                   int     `json:"id"`
	Title                string  `json:"title"`
	Label                string  `json:"label"`
	Score                int     `json:"score"`
	Average              float64 `json:"average"`
	Criteria             string  `json:"criteria"`
	CareerId             uint    `json:"career_id"`
	MainPointScoreDetail string  `json:"main_point_score_detail"`
}

// 评分详细聚合
type ScoreDetail struct {
	Sum      float64   `json:"sum" default:"0.00"`
	Scores   []float64 `json:"scores"`
	Avg      float64   `json:"avg" default:"0.00"`
	Variance float64   `json:"variance" default:"0.00"`
}
type ReportList struct {
	ID           uint      `json:"id"`
	Status       uint      `json:"status"`
	URL          string    `json:"url"`
	BeginDate    time.Time `json:"begin_time"`
	Duration     string    `json:"duration"`
	CareerName   string    `json:"career_name"`
	TotalScore   int       `json:"total_score"`
	FinishTime   time.Time `json:"finish_time"`
	ReportType   string    `json:"report_type"`
	IsShared     bool      `json:"is_shared"`
	ReportIsSync bool      `json:"report_is_sync"`
	AgentIsSync  bool      `json:"agent_is_sync"`
	IsRead       bool      `json:"is_read"`
}

type SatisfiedScore struct {
	Score int64 `json:"score" form:"score" validate:"oneof=0 1 2 3 4 5 6 7 8 9 10"`
}

type PosWordScore struct {
	Profession    [][]interface{}
	General       [][]interface{}
	Experience    [][]interface{}
	Tool          [][]interface{}
	Other         [][]interface{}
	Individuality [][]interface{}
}

type LabelEvaluate struct {
	EvalScore    float64      `json:"eval_score"`
	LabelScore   LabelScore   `json:"label_score"`
	PosWordScore PosWordScore `json:"pos_word_score_dict"` // 优势能力标签
	NegScoreDict PosWordScore `json:"neg_word_score_dict"` // 亟待提升能力标签
	ExpScoreDict PosWordScore `json:"exp_word_score_dict"` // 拓展能力标签
	ReqData      string       `json:"req_data"`
}

type LabelScore struct {
	Profession    float64
	General       float64
	Experience    float64
	Tool          float64
	Other         float64
	Individuality float64
}

// 接口响应数据
type EvalByLabelsZhuanxiangResp struct {
	RawScore      float64  `json:"raw_score"`
	LabelWordList []string `json:"label_word_list"`
	NewScore      float64  `json:"new_score"`
	Flag          int      `json:"flag"`
}

// 接受简历大师glm接口的响应
type ResumeResultResp struct {
	Status  string `json:"status"`
	ResText string `json:"res_text"`
}

// 获取训练详情
type ReportListReq struct {
	*CondTime
	Uid int `form:"uid" json:"uid"`
}
